# @Time    : 2022/8/22 18:22
# @Author  : 南黎
# @FileName: 9.剪切板操作.py
import win32clipboard
import win32gui
# 注意窗口句柄获取如果失败，要做好异常处理
try:
    # 获取窗口句柄
    handle = win32gui.FindWindowEx(0, 0, "Notepad", None)#桌面窗口的所有子窗口检索类名"Edit"，标题为None的窗口
    print("窗口句柄是：{}".format(handle))

    send_message = '发送的消息内容'
    win32clipboard.OpenClipboard()#打开剪切板
    win32clipboard.EmptyClipboard()#设置剪切板为空，赋初始值是程序员的好习惯，注意一开始的样子
    win32clipboard.SetClipboardText(send_message, win32clipboard.CF_TEXT)
    print("设置剪切板的返回值是：{}".format(win32clipboard.SetClipboardText(send_message, win32clipboard.CF_TEXT)))
    #SetClipboardText的2个参数解读
    #send_message           ->文本：str / unicode 要放置在剪贴板上的文本。
    #win32clipboard.CF_TEXT ->格式 = CF_TEXT: 要使用的剪贴板格式 - 必须是CF_TEXT或CF_UNICODETEXT

    getResult= win32clipboard.GetClipboardData(win32clipboard.CF_TEXT).decode('GBK')#获取剪切板数据并转码
    win32clipboard.CloseClipboard()#关闭剪切板，有始有终，关闭以此减少资源占用
    print("获取到剪切板内容是：{}".format(getResult))

except Exception as e:
    print("错误：{}".format(e))